package org.jeecg.modules.business.entity;

import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.rooms.entity.CesRoomLayout;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: bus_hotel
 * @Author: jeecg-boot
 * @Date:   2023-02-14
 * @Version: V1.0
 */
@Data
@TableName("bus_hotel_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bus_hotel_info对象", description="bus_hotel")
public class BusHotel implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**关联租户*/
	@Excel(name = "关联租户", width = 15)
    @ApiModelProperty(value = "关联租户")
    private String tenantId;

    /**租户名称*/
    private transient String tenantName;

	/**酒店名称*/
	@Excel(name = "酒店名称", width = 15)
    @ApiModelProperty(value = "酒店名称")
    private String name;
	/**联系人*/
	@Excel(name = "联系人", width = 15)
    @ApiModelProperty(value = "联系人")
    private String linkName;
	/**联系电话*/
	@Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
    private String linkTel;
	/**酒店电话*/
	@Excel(name = "酒店电话", width = 15)
    @ApiModelProperty(value = "酒店电话")
    private String tel;
	/**酒店地址*/
	@Excel(name = "酒店地址", width = 15)
    @ApiModelProperty(value = "酒店地址")
    private String address;
	/**星级*/
	@Excel(name = "星级", width = 15)
    @ApiModelProperty(value = "星级")
    private Integer star;
	/**经度*/
	@Excel(name = "经度", width = 15)
    @ApiModelProperty(value = "经度")
    private BigDecimal lng;
	/**纬度*/
	@Excel(name = "纬度", width = 15)
    @ApiModelProperty(value = "纬度")
    private BigDecimal lat;
	/**客房总数*/
	@Excel(name = "客房总数", width = 15)
    @ApiModelProperty(value = "客房总数")
    private Integer roomCount;
	/**开业时间*/
	@Excel(name = "开业时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "开业时间")
    private Date openTime;
	/**装修时间*/
	@Excel(name = "装修时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "装修时间")
    private Date renovationTime;
	/**酒店主题*/
	@Excel(name = "酒店主题", width = 15)
    @ApiModelProperty(value = "酒店主题")
    private Integer topic;
	/**酒店政策*/
	@Excel(name = "酒店政策", width = 15)
    @ApiModelProperty(value = "酒店政策")
    private String policy;
	/**酒店介绍*/
	@Excel(name = "酒店介绍", width = 15)
    @ApiModelProperty(value = "酒店介绍")
    private String introduction;
	/**预订提醒*/
	@Excel(name = "预订提醒", width = 15)
    @ApiModelProperty(value = "预订提醒")
    private String reserveRemind;
	/**交通和周边*/
	@Excel(name = "交通和周边", width = 15)
    @ApiModelProperty(value = "交通和周边")
    private String traffic;
	/**门头照*/
	@Excel(name = "门头照", width = 15)
    @ApiModelProperty(value = "门头照")
    private String ewmLogo;
	/**酒店图片*/
	@Excel(name = "酒店图片", width = 15)
    @ApiModelProperty(value = "酒店图片")
    private String imgs;
	/**营业执照*/
	@Excel(name = "营业执照", width = 15)
    @ApiModelProperty(value = "营业执照")
    private String yyImg;
	/**特种行业许可证*/
	@Excel(name = "特种行业许可证", width = 15)
    @ApiModelProperty(value = "特种行业许可证")
    private String tzhyImg;
	/**企业法人*/
	@Excel(name = "企业法人", width = 15)
    @ApiModelProperty(value = "企业法人")
    private String legalPerson;
	/**经营场所*/
	@Excel(name = "经营场所", width = 15)
    @ApiModelProperty(value = "经营场所")
    private String registeredAddress;
	/**注册号*/
	@Excel(name = "注册号", width = 15)
    @ApiModelProperty(value = "注册号")
    private String unifiedCode;
	/**有效期*/
	@Excel(name = "有效期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "有效期")
    private Date businessTerm;
	/**身份证正面照*/
	@Excel(name = "身份证正面照", width = 15)
    @ApiModelProperty(value = "身份证正面照")
    private String sfzImg1;
	/**身份证反面照*/
	@Excel(name = "身份证反面照", width = 15)
    @ApiModelProperty(value = "身份证反面照")
    private String sfzImg2;
	/**身份证手持照*/
	@Excel(name = "身份证手持照", width = 15)
    @ApiModelProperty(value = "身份证手持照")
    private String sfzImg3;
	/**身份证姓名*/
	@Excel(name = "身份证姓名", width = 15)
    @ApiModelProperty(value = "身份证姓名")
    private String sfzName;
	/**身份证号*/
	@Excel(name = "身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
    private String idCard;
	/**服务商*/
	@Excel(name = "服务商", width = 15)
    @ApiModelProperty(value = "服务商")
    private String sellerName;
	/**邀请码*/
	@Excel(name = "邀请码", width = 15)
    @ApiModelProperty(value = "邀请码")
    private String invitationCode;
	/**总店*/
	@Excel(name = "总店", width = 15)
    @ApiModelProperty(value = "总店")
    private String superiorSellerId;
	/**银联支付*/
	@Excel(name = "银联支付", width = 15)
    @ApiModelProperty(value = "银联支付")
    private Boolean unionpay;
	/**到店支付*/
	@Excel(name = "到店支付", width = 15)
    @ApiModelProperty(value = "到店支付")
    private Boolean ddOpen;
	/**微信支付*/
	@Excel(name = "微信支付", width = 15)
    @ApiModelProperty(value = "微信支付")
    private Boolean wxOpen;
	/**余额支付*/
	@Excel(name = "余额支付", width = 15)
    @ApiModelProperty(value = "余额支付")
    private Boolean yeOpen;

    /**
     * 状态（1启用，0不启用）
     */
    @Excel(name = "状态", width = 15,dicCode="hotel_status")
    @Dict(dicCode = "hotel_status")
    private Integer status;
    /**备注信息*/
    @Excel(name = "备注信息", width = 15)
    @ApiModelProperty(value = "备注信息")
    private String remarks;
    /**
     * 审核状态（0-待审核，1-审核通过，2-审核未通过）
     */
    @Excel(name = "状态", width = 15,dicCode="check_status")
    @Dict(dicCode = "check_status")
    private Integer checkStatus;
    /**审核备注信息*/
    @Excel(name = "审核备注信息", width = 15)
    @ApiModelProperty(value = "审核备注信息")
    private String checkRemarks;

    /**
     * 删除状态（0，正常，1已删除）
     */
    @Excel(name = "删除状态", width = 15,dicCode="del_flag")
    @TableLogic
    private Integer delFlag;
    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 审核人
     */
    private String checkBy;

    /**
     * 审核时间
     */
    private Date checkTime;
    /**退订规则*/
    @Excel(name = "退订规则", width = 15)
    @ApiModelProperty(value = "退订规则")
    private String rule;

    /**酒店设施*/
    @Excel(name = "酒店设施", width = 15)
    @ApiModelProperty(value = "酒店设施")
    private String facility;
//    /**酒店设施*/
//    @Excel(name = "酒店设施", width = 15)
//    @ApiModelProperty(value = "酒店设施")
//    private java.lang.String facility;

    /**酒店标签*/
    @Excel(name = "酒店标签", width = 15)
    @ApiModelProperty(value = "酒店标签")
    private String tagList;

    @ApiModelProperty(value = "搜索关键词")
    @TableField(exist = false)
    private String keyWord;

    @ApiModelProperty(value = "最低价格")
    @TableField(exist = false)
    private BigDecimal minPrice;

    @ApiModelProperty(value = "评分")
    @TableField(exist = false)
    private Double score;

    @ApiModelProperty(value = "评论数")
    @TableField(exist = false)
    private Integer commentNum;

    @ApiModelProperty(value = "距离")
    @TableField(exist = false)
    private BigDecimal distance;

    @ApiModelProperty(value = "房号")
    @TableField(exist = false)
    private String roomName;

    @ApiModelProperty(value = "入住订单信息")
    @TableField(exist = false)
    private  BusRoomsLivingOrder livingOrder;

    @ApiModelProperty(value = "房型信息")
    @TableField(exist = false)
    private  CesRoomLayout cesRoomLayout;

    @ApiModelProperty(value = "入住联系人信息")
    @TableField(exist = false)
    private  BusLivingCustomer busLivingCustomer;

    /**
     * 记住付款类型
     * a-b-c
     * a:1、押金房费分开，2、不分开
     * b:第一个项目，1、房费；2、押金
     * c:第二个项目，1、房费；2、押金
     */
    @ApiModelProperty(value = "入住记住付款类型")
    private String remenmberPayState;


}
